package com.niit.session20;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class StudentDao1 {
	public static void main(String[] args) {
		Connection conn = JDBCUtils.getConn();
		Statement statement = null;
		ResultSet rs = null;
		try {
//			可以在创建Statement对象的时候设置结果集的类型，默认值时只能向前滚动的只读结果集
			statement = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
//			故意写错表名，让JDBC抛出SQLException
			rs = statement.executeQuery("select * from  student where batch = 2");
//			ResultSet对象刚创建的时候，游标指向的是第一个元素之前，所以无法获取这个位置的数据
//			System.out.println(rs.getString("name"));
//			next()方法可以让游标向后移动，并且返回是否还有下一行数据的一个布尔值
			boolean next = rs.next();
			System.out.println("是否还有下一行："+next);
			System.out.println(rs.getString("name"));
//			判断当前游标是否在第一行
			System.out.println("游标当前是否在第一行："+rs.isFirst());
			rs.next();
			System.out.println(rs.getString("name"));
//			让游标直接跳转到指定的行号，行号从1开始数，调转需要修改结果集的类型为TYPE_SCROLL_INSENSITIVE
			rs.absolute(9);
			System.out.println(rs.getString("name"));
//			如果想把数据获取成String类型就用getString()
			System.out.println(rs.getString("sid"));
//			如果想获取成long类型就用getLong,要注意取值范围
			System.out.println(rs.getLong("sid"));
//			要注意，get方法获取时，只能获取兼容的字面量
			System.out.println(rs.getLong("name"));
//			while(rs.next()) {
//				System.out.println(rs.getString("sid")+"--"+rs.getString("name"));
//			}
		} catch (SQLException e) {
			e.printStackTrace();
		}finally {
//			使用完毕之后记得关闭链接
			JDBCUtils.close(conn, statement, rs);
		}
	}

}
